草庐IT

Android RemoteControlClient 位图缩放

全部标签

Android 位图、回收和堆 fragment

我有一个应用程序大量使用从SD卡读取的位图。我99%确定如果不回收这些应用程序,我的应用程序永远不会被销毁。它们都被分配到LRU缓存(公共(public)集合)中,当它们从LRU缓存中清除时,该缓存会回收它们,我在onDestroy()中回收剩余部分。尽管如此,我还是有问题。如果我多次启动/停止/启动/...我的应用程序,我总是会出现内存不足错误。我的理论是它与Android的非压缩堆有关。几次运行后,堆已足够fragment化,因此尽管有足够的可用内存,但没有足够大的连续block来加载位图。无论如何,这就是理论。我一直在通过在onDestroy()(android.os.Proce

android - 如何在Android中逐像素显示位图?

我正在尝试逐像素显示位图图像(这明确表示有一些延迟)。为此,我使用了两个“for循环”,但它只打印一行像素...我的代码:Buttonstart=(Button)findViewById(R.id.start);start.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){//Toast.makeText(getBaseContext(),"Printing...",Toast.LENGTH_SHORT).show();iImageArray=newint[bMap.getWid

android - 如何将 alpha channel 添加到位图

我的代码如下。它与此问题的解决方案中的代码完全相同:Makecertainareaofbitmaptransparentontouch和其他许多人一样,我对这段代码也有同样的问题:圆圈变黑了。我使用一个PNG文件作为我的叠加层,这个文件没有任何透明区域。但是只要我在Photoshop中向PNG添加任意透明区域,代码就会开始工作并且圆圈显示为透明。显然,图像及其透明度设置有问题,但我不知道是什么。我需要使用没有任何透明区域的PNG作为叠加层。有什么建议吗?编辑:好的代码不能依赖于覆盖图像是否具有透明度,我正在寻找一种方法来处理任何类型的图像作为我的覆盖,无论是JPG、PNG还是其他。编辑

android - 将许多大位图图像加载为缩略图 - Android

我正在开发一个媒体播放器应用程序,并希望加载专辑封面图像以显示在ListView中。现在它可以很好地处理我从last.fm自动下载的小于500x500png的图像。但是,我最近在我的应用程序中添加了另一个面板,允许查看全屏图稿,因此我用大(1024x1024)png替换了我的一些图稿。现在,当我滚动浏览具有高分辨率图片的多个相册时,我的BitmapFactory上出现了java.lang.OutOfMemoryError。staticpublicBitmapgetAlbumArtFromCache(Stringartist,Stringalbum,Contextc){Bitmapart

android - 缩放和加载位图导致 OOM (OutOfMemoryError) (Android)

我现在已经尝试了一千次自己解决这个问题,但没有任何成功。我已经记录并调试了该应用程序,从我收集到的信息中可以找到一个用于动画的大型spritesheet。它是一个大小为3000x1614像素的.png。spritesheet中有10x6的sprite,这是动画必不可少的。Sprite之间没有任何间隙,以尽可能提高内存效率。这是我加载、解码和调整位图大小的方法,以适应用户手机与我正在构建游戏的手机的纵横比:publicPixmapnewResizedPixmap(StringfileName,PixmapFormatformat,doubleWidth,doubleHeight){//T

android - RemoteViews (Widget) 在使用位图时有模糊文本

为了在我的小部件上放置自定义字体,我创建了一个位图,其中包含该字体,然后将该位图放置到我的RemoteView中。然而,位图上的文本非常模糊,与Activity中的清晰度相比,它看起来非常像素化。已经有相当多的应用程序在小部件上使用自定义字体。不过,我还没有找到一种可靠的方法来做到这一点。如果有人对这个问题有更好的解决方案,我很乐意听到!现在这就是我用来创建位图并将其放置在小部件上的方法:RemoteViewswidgetView=newRemoteViews(this.getPackageName(),R.layout.widget);widgetView.setImageViewB

android - 如何将 android 位图转换为 NV12 颜色格式?

我正在编写一些将android位图转换为NV12格式的代码。我从android位图中找到了给我NV21的代码,看起来该代码有效。(ConvertbitmaparraytoYUV(YCbCrNV21))我发现的唯一区别是根据引用在NV12和NV21之间切换U和V字节。(http://www.fourcc.org/yuv.php)所以我在原来的代码中改变了U和V的位置,结果如下。byte[]getNV12(intinputWidth,intinputHeight,Bitmapscaled){//Reference(Variation):https://gist.github.com/wob

java - 什么时候在android项目中回收位图?

我已经在AndroidListView中成功实现了列表图像和列表项的延迟加载。我使用的是Android4.0+和Java7。我遵循的算法是:当用户滚动列表时,列表数据(包括图像URL)从互联网下载。当滚动状态空闲时,加载列表图像。在后台线程中,首先检查缓存中的图像。如果缓存中不存在,它们将被下载并存储到缓存中。最后在ListView中将图像设置为ImageView并通知适配器。唯一的问题是我不清楚何时回收位图。我尝试在很多地方使用bitmap.recyle()但出现以下错误:java.lang.IllegalArgumentException:无法绘制回收位图不可能在此处添加大量代码。

Unity 关于SpriteRenderer 和正交相机缩放

floatoldWidth=750f;floatoldHeight=1334f;floatnewWidth=Screen.width;floatnewHeight=Screen.height;floatoldAspect=oldWidth/oldHeight;floatnewAspect=newWidth/newHeight;//水平方向缩放floathorizontalCompressionRatio=newAspect/oldAspect;//垂直方向缩放floatverticalCompressionRatio=oldAspect/newAspect;//0.4620.562Freeze

java - getDrawingCache() 返回的位图未更新

我有一个自定义View,它将管理数百个离散的用户定义的顺序绘图事件。我不是维护所有单个文本、线条、形状更新的集合,然后在每次onDraw期间重新绘制它们,而是在每次onDraw结束时获取Canvas的位图,然后使用该位图启动下一个onDraw。我的问题描述如下:publicclassTestViewextendsViewimplementsOnTouchListener{privatePaintmPaint;privateBitmapmPrevCanvas;privateintmTouchCount=0;floatmX=50f;floatmY=50f;publicTestView(Co